#pragma once
#include <iostream>
#ifdef __linux__
#include <pthread.h>
#endif
#include <string>
#include <thread>
#include "level.hpp"
/*
    日志消息模块:
    功能:封装一条日志信息！
*/
namespace LoggerSpace
{
    class LogMes
    {
    public:
        time_t _tm;              // 日志消息所产生的时间
        std::string _fileName;   // 日志信息所产生的源文件
        int _line;               // 日志信息产生的行号
        std::thread::id _tid;    // 产生日志的线程号
        LoggerSpace::LogLevel _lev;  // 日志等级
        std::string _loggerName; // 日志器名称
        std::string _payload;    // 日志的主体信息
        LogMes() = default;
        LogMes(const std::string &filename, int line, LoggerSpace::LogLevel lev, const std::string &loggerName, const std::string &payLoad)
            : _tm(time(nullptr)), _fileName(filename), _line(line), _lev(lev), _tid(std::this_thread::get_id()), _loggerName(loggerName), _payload(payLoad)
        {
        }
        ~LogMes() {}
    };
} // namespace MySpace
